
#ifndef _UI_H
#define _UI_H

#include <common.h>
#include <disp_manager.h>
#include <input_manager.h>
//ui-button.c中默认的一些参数 红 绿 蓝 黑
#define BUTTON_DEFAULT_COLOR 0xff0000
#define BUTTON_PRESSED_COLOR 0x00ff00
#define BUTTON_PERCENT_COLOR 0x0000ff
#define BUTTON_TEXT_COLOR    0x000000

struct Button;
//OnDraw OnPressed的参数太长，用下面的定义代替
typedef int (*ONDRAW_FUNC)(struct Button *ptButton, PDispBuff ptDispBuff);
typedef int (*ONPRESSED_FUNC)(struct Button *ptButton, PDispBuff ptDispBuff, PInputEvent ptInputEvent);

//1、抽象出按键数据结构
typedef struct Button {
	char *name;
	int iFontSize;
	int status;//初始状态
	Region tRegion; //使用region结构体可以表示一个按钮的位置
	//OnDraw OnPressed是两个函数
	int (*OnDraw)(struct Button *ptButton, PDispBuff ptDispBuff); //绘制按钮，再刷
	//实现点击按钮
	int (*OnPressed)(struct Button *ptButton, PDispBuff ptDispBuff, PInputEvent ptInputEvent);
}Button, *PButton;

#endif

